package cn.chenfeifx.media.controls;

import cn.chenfeifx.media.controls.skin.CFAudioPlayerSkin;
import javafx.beans.property.ObjectProperty;
import javafx.beans.property.SimpleObjectProperty;
import javafx.scene.control.Control;
import javafx.scene.control.Skin;
import javafx.scene.media.Media;

import java.util.Objects;

/**
 * 音频播放组件
 * <p>
 * TODO：核心功能已完成，待优化（自定义图片，标题，作者）。
 */
public class CFAudioPlayer extends Control {


    public CFAudioPlayer() {
        setMaxSize(USE_PREF_SIZE, USE_PREF_SIZE);
        getStyleClass().add("cf-audio-player");
    }

    private final ObjectProperty<Media> media = new SimpleObjectProperty<>();

    public Media getMedia() {
        return media.get();
    }

    public ObjectProperty<Media> mediaProperty() {
        return media;
    }

    public void setMedia(Media media) {
        this.media.set(media);
    }


    @Override
    public String getUserAgentStylesheet() {
        return Objects.requireNonNull(getClass().getResource("/cn/chenfeifx/media/css/cf-audio-player.css")).toExternalForm();
    }

    @Override
    protected Skin<?> createDefaultSkin() {
        return new CFAudioPlayerSkin(this);
    }
}
